# -*- coding: utf-8 -*-
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys


class PushButton(QWidget):
    def __init__(self, parent=None):
        super(PushButton, self).__init__(parent)

        self.setWindowTitle("PUSH 按钮 示例")

        layout = QVBoxLayout()

        self.btn = QPushButton("Button1")
        self.btn.setCheckable(True)  # 设置为可选Button并赋值为True
        self.btn.toggle()  # 设置选中翻转，效果是再次选中都为False
        self.btn.clicked.connect(lambda: self.get_text(self.btn))  # 连接到槽
        self.btn.clicked.connect(self.btn_click)  # 连接到槽
        layout.addWidget(self.btn)  # 布局器内添加Button

        self.btn_img = QPushButton('图片')  # 创建QpushButton对象，并设置其text
        self.btn_img.setIcon(QIcon(QPixmap('image.jpg')))  # 设置按钮图标，使用setIcon()方法接收一个QPixmap对象的图像文件作为输入参数
        # self.btn_img.setIcon(QIcon('image.jpg'))  # 设置按钮图标
        self.btn_img.clicked.connect(lambda: self.get_text(self.btn_img))  # 连接到槽
        self.btn_img.clicked.connect(self.btn_click)  # 连接到槽
        layout.addWidget(self.btn_img)  # 布局器内添加Button

        self.setLayout(layout)

        self.btn2 = QPushButton("无法选中")
        self.btn2.setEnabled(False)  # 设置为不可点击，禁用
        layout.addWidget(self.btn2)

        self.btn3 = QPushButton("&下载")
        self.btn3.setDefault(True)  # 设置为焦点，需要先点击一次后，回车触发
        self.btn3.clicked.connect(lambda: self.get_text(self.btn3))
        self.btn3.clicked.connect(self.btn_click)
        layout.addWidget(self.btn3)

    def btn_click(self):
        if self.btn.isChecked():  # 判断时候可选中
            print("PASS")
        else:
            print("FAil")

    def get_text(self, btn):
        print("获取文本，", btn.text())


if __name__ == '__main__':
    app = QApplication(sys.argv)
    push = PushButton()
    push.show()
    sys.exit(app.exec_())
